A natural language call router allows callers to state what they want in plain language as they would to a real person. Based on what the callers said, their calls are routed to the appropriate destinations. Natural language call routers consist of two major components—the recognizer and the classifier. The purpose of the recognizer is to determine the sequence of words a caller has spoken. The classifier takes this sequence of words and assigns one of a set of fixed meanings (or destinations) to that sequence. Then, the respective application routes the call to the determined destination.
Typically, the recognizer is implemented with a statistical language model (SLM). The SLM combines acoustic information from the caller's speech with a statistical model representing the likelihood of different word sequences, to deter mine the sequence of words spoken by the caller.
The classifier is typically implemented in one of the following ways:                as a program written in some programming language;        as a robust parsing grammar that looks for certain key words and phrases, the robust parsing grammar would need to be augmented by some type of program to determine how the key words map onto destinations; and        as a Statistical Semantic Model (SSM) that determines how the statistical patterns of human word usage can be used to figure out what people mean.        
In a rapidly changing environment, the types of things that callers may say also change rapidly. Therefore, there is a need to quickly and easily change both the SLM and the classifier of the call router to accommodate those changes. None of the three types of classifiers discussed above satisfies this need. Because of the many possible sequences of words that can be generated by the recognizer, changing a program can be complicated. The same disadvantage applies to the robust parsing grammar/program combination. Changing the SSM involves the manual retagging of possibly tens of thousands of transcribed callers' utterances and then the retraining of the SSM based upon the new tagging. This training process often requires many hours of compilation time.
Hence, the need exists for a natural language call router operating based on the grammar that can be easily modified with little manual intervention, and can be recompiled within a short time.